package org.springblade.modules.admin.vo.rescue;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 报警记录详情VO
 * @author: Sharry
 * @createTime: 2025-07-14 22:00
 * @version: Version-1.0
 */
@Data
public class RescueNoticeDetailVO {

	@ApiModelProperty(value = "主键id")
	private Long id;

	/**
	 * 报警名称, 梯联网生成
	 */
	@ApiModelProperty(value = "报警名称,梯联网生成")
	private String eventName;

	/**
	 * 报警楼层
	 */
	@ApiModelProperty(value = "报警楼层")
	private String floorNumber;

	/**
	 * 关联工单id
	 */
	@ApiModelProperty(value = "关联工单id")
	private Long planId;

	/**
	 * 工单状态
	 */
	@ApiModelProperty(value = "工单状态")
	private Integer status;

	/**
	 * 工单类型
	 */
	@ApiModelProperty(value = "工单类型")
	private Integer typeStatus;

	/**
	 * 工单状态描述
	 */
	@ApiModelProperty
	private String statusDesc;

	/**
	 * 报警来源：0-物联网告警，99-梯联网告警，100-微信群机器人
	 * 且可用于报警来源区分这个VO的具体展示
	 */
	@ApiModelProperty(value = "报警来源")
	private String eventCode;

	/**
	 * 报警来源说明，供前端展示
	 */
	@ApiModelProperty(value = "报警来源说明，供前端展示")
	private String eventCodeDesc;

	/**
	 * 报警时间
	 */
	@ApiModelProperty(value = "报警时间")
	private Date createTime;

	/**
	 * 报警ID, 梯联网生成
	 */
	@ApiModelProperty(value = "报警ID,梯联网生成")
	private String callId;

	/**
	 * 电梯状态
	 */
	@ApiModelProperty(value = "电梯状态")
	private Integer isStop;

	/**
	 * 电梯状态描述
	 */
	@ApiModelProperty(value = "电梯状态描述")
	private String isStopDesc;

	/**
	 * 工单创建时间
	 */
	@ApiModelProperty(value = "工单创建时间")
	private Date planCreateTime;

	/**
	 * 电梯id
	 */
	@ApiModelProperty(value = "电梯id")
	private Long elevatorId;

	/**
	 * 电梯码
	 */
	@ApiModelProperty(value = "电梯码")
	private String elevatorNum;

	/**
	 * 电梯位置
	 */
	@ApiModelProperty(value = "电梯位置")
	private String elevatorAddress;

	/**
	 * 所在项目
	 */
	@ApiModelProperty(value = "项目名称")
	private String buildingName;

	/**
	 * 所属维保组
	 * 从 blade_elevator_principal_dept 表中获取
	 */
	@ApiModelProperty("所属维保组")
	private String principalDeptNames;

	/**
	 * 电梯责任人
	 * 从 blade_elevator_principal_user 表中获取
	 */
	@ApiModelProperty("电梯责任人")
	private String principalUserNames;

	/**
	 * 物业联系人
	 * 从 blade_building_contacts 表中获取
	 */
	@ApiModelProperty("物业联系人信息")
	private List<RescueEstateLinkmanVO> estateLinkman;

	/**
	 * 物业联系人 名字加信息
	 */
	@ApiModelProperty("物业联系人电话")
	private String estateLinkMessage;

	/**
	 * 电梯类型
	 * 通过 blade_elevator_detail 表连 blade_elevator_drive_mode 获取
	 */
	@ApiModelProperty("电梯类型")
	private String elevatorTypeName;

	/**
	 * 电梯品牌
	 * 电梯主表
	 */
	@ApiModelProperty("电梯品牌")
	private String brandName;

	/**
	 * 项目类型值
	 * 从 blade_building 表中获取 type字段，再查字典表
	 */
	@ApiModelProperty("项目类型")
	private String buildingType;

	/**
	 * 项目地址
	 */
	@ApiModelProperty("项目地址")
	private String buildingAddress;

	/**
	 * 确认类型
	 */
	@ApiModelProperty("确认类型")
	private Integer confirmType;

	/**
	 * 报警确认结果
	 * 从 blade_rescue_notice 中获取，并转换为值
	 */
	@ApiModelProperty("确认结果")
	private String confirmTypeDesc;

	/**
	 * 确认备注
	 * 对应rescue表的remark字段
	 */
	@ApiModelProperty("确认备注")
	private String remark;

	/**
	 * 确认状态
	 * confirmTypeDesc不为-1则为已确认，否则为未确认
	 */
	@ApiModelProperty("确认状态")
	private Boolean confirmStatusDesc;

	/**
	 * 微信群AI机器人告警详情
	 */
	@ApiModelProperty("微信群AI机器人告警详情")
	private AIRescueNoticeVO aiRescueNoticeVO;

	/**
	 * 项目经度
	 */
	@ApiModelProperty("项目经度")
	private Double longitude;

	/**
	 * 项目纬度
	 */
	@ApiModelProperty("项目纬度")
	private Double latitude;

	/**
	 * 项目id
	 */
	@ApiModelProperty("项目id")
	private Long buildingId;

	@ApiModelProperty(value = "确认时间")
	private Date confirmTime;

	@ApiModelProperty(value = "确认人")
	private String confirmUser;

}
